﻿using CRM.Infrastructure.Attr;
using CRM.Infrastructure.Dto.Request.order;
using CRM.Infrastructure.Dto.Response;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CRM.Service.Interface
{
    /// <summary>
    /// 客户
    /// </summary>
    [Provider_]
    public interface I_Order_Service
    {
        /// <summary>
        /// 完成支付
        /// </summary>
        /// <param name="trade_order_id"></param>
        /// <param name="total_fee"></param>
        /// <returns></returns>
        Api_Response_Dto Finish_Pay(string trade_order_id, string total_fee);

        /// <summary>
        /// 生成订单
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Response_Dto> Generate_Order(Order_Request_Dto dto);

        /// <summary>
        /// 生成支付订单
        /// </summary>
        /// <param name="pid"></param>
        /// <param name="oid"></param>
        /// <param name="money"></param>
        /// <returns></returns>
        Task<Api_Response_Dto> Generate_Pay(string pid, string? oid, decimal? money);
        Task<Api_Response_Dto> Get_Order();

        /// <summary>
        /// 根据房间号获取订单
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Api_Response_Dto> Get_Order_By_Room(string id);
        Task<Api_Response_Dto> Get_Order_details(string id);
        Task<Api_Response_Dto> Get_Room();

        /// <summary>
        /// 更新订单
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Api_Response_Dto> Update_Order(Order_Request_Dto dto);
    }
}
